let obj = {
    key: 10
}
Object.prototype.key = 100
console.log(obj.key); // 10
delete obj.key
console.log(obj.key); // 100
delete obj.key
console.log(obj.key); // 100
/**
 * 上述结果产生的原因：
 * 1、对象查找属性，会首先查找自身的属性，而后再查找原型链上的属性。obj有key所以直接使用。
 * 2、delete 属性：会删除本身的属性，所以查找原型链的key
 * 3、再delete由于自身属性已经删除，所以继续delete没有效果。因此还是原型链的属性
 * 注意：delete obj.prop，当prop没有时，并不会往上删除原型链的prop
 */